package com.gaga.metadata.entity.base;

import com.fasterxml.jackson.annotation.JsonTypeInfo;
import com.gaga.metadata.common.enums.FilterFiledType;
import com.gaga.metadata.common.enums.ModelFilterType;
import lombok.Data;

import java.io.Serializable;

/**
 * @author liujia
 * @version 1.0
 * @date 2022/12/12 17:41
 */
@Data
@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS)
public class BaseFilter implements Serializable {

    /**
     * 节点类型 字段：column 操作符：symbol  数值：value 函数：fun
     */
    private ModelFilterType type;

    /**
     * 列名
     */
    private String columnName;

    /**
     * 关联表的名称或者别名
     */
    private String linkTableNameOrAliasName;

    /**
     * 操作符 比如=
     */
    private String oper;

    /**
     * 函数名称 如TIMESTAMPDIFF
     */
    private String name;

    /**
     * 当type== value的时候 因这个字段
     */
    private String value;

    /**
     * 值类型 S字符 SS字符数组 N数字 NS数字数组 DT时间
     */
    private FilterFiledType fieldType;

    public void setColumnName(String columnName) {
        this.columnName = columnName;
    }
}
